import {
  IsEmail,
  IsNotEmpty,
  IsOptional,
  IsString,
  Matches,
  MinLength,
} from 'class-validator';

export class CreateUserDto {
  @IsEmail({}, { message: '邮箱格式不正确' })
  email: string;

  @IsString()
  @IsNotEmpty({ message: '密码不能为空' })
  @MinLength(6, { message: '密码长度不能少于6位' })
  @Matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/, {
    message: '密码需包含大小写字母和数字',
  })
  password: string;

  @IsString()
  @IsNotEmpty({ message: '用户名不能为空' })
  name: string;

  @IsString({ message: '手机号码必须是字符串' })
  @IsNotEmpty({ message: '手机号不能为空' })
  @Matches(/^1[3-9]\d{9}$/, { message: '手机号格式不正确' })
  phone: string;

  @IsOptional()
  departmentId?: number; // 关联部门 ID，可选

  // 注意：角色分配建议通过独立接口（如 /users/:id/roles）处理，避免在创建用户时直接传角色
}
